from docx import Document
# 将真实的员工信息保存在字典中
person_list = [
    {
        "name":"杨天偿",
        "id":"333222199909120987",
        "sdate":"2017年7月1日",
        "edate":"2021年11月1日",
        "department":"技术部",
        "position":"架构师",
        "company":"深圳华为技术有限公司"
    },
    {
        "name":"刘一奇",
        "id":"110120198909120937",
        "sdate":"2016年3月1日",
        "edate":"2020年10月1日",
        "department":"行政部",
        "position":"打手",
        "company":"黑龙江天上人间桑拿会所"
    },
    {
        "name":"张国涛",
        "id":"111222199908120987",
        "sdate":"2015年4月1日",
        "edate":"2019年11月1日",
        "department":"后厨部",
        "position":"试吃员",
        "company":"深圳市金威源餐饮有限公司"
    },
    {
        "name":"欧阳",
        "id":"112221199909120987",
        "sdate":"2016年7月1日",
        "edate":"2020年11月1日",
        "department":"后勤部",
        "position":"大茶壶",
        "company":"深圳市怡红院高级会所"
    },
]

# 对列表进行循环遍历,批量生成word文件
for person in person_list:
    # 读取离职证明模板文件
    doc = Document(r"C:\python06\day18\代码\resources\离职证明模板.docx")

    # 循环遍历文件中的所有的段落,查找占位符
    for p in doc.paragraphs:
        # print(p.text)
        if '{' not in p.text:
            continue
        # 不能直接修改段落内容,否则会丢失样式,所以需要对段落中的元素进行遍历并实现查找和替换
        for run in p.runs:
            # print(run.text)
            if '{' not in run.text:
                continue
            # 将占位符中的内容进行替换
            start,end = run.text.find('{'),run.text.find('}')
            key,place_holder = run.text[start+1:end],run.text[start:end+1]
            # key ===> name   place_holder===>{name}
            #print(key,place_holder)
            run.text = run.text.replace(place_holder,person[key])
            # print(run.text)
    # 每个人保存一个word文档
    doc.save(f"{person['name']}离职证明.docx")